package serveurs;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.swing.*;





public class MaVueServeur extends JFrame{
	
/***************** Définitions ****************************/
	//Panel/Label...
	  private JPanel all = new JPanel();
	  private JPanel statePanel = new JPanel();
	  private String url;
	  private JLabel serveurLabel = new JLabel("Etat du Serveur");
	  private JLabel state = new JLabel("OK : Arrêté");
	  private JLabel state2 = new JLabel("");


	  //Mes Boutons
	  private JButton boutonDemarrer = new JButton();
	  //private JButton boutonArreter = new JButton();
	  
	  //Mes Images
	  private Icon startIcon = new ImageIcon(getClass().getResource("/start.jpg"));
	  private Icon stopIcon = new ImageIcon(getClass().getResource("/stop.jpg"));
	  private ImageIcon img = new ImageIcon(getClass().getResource("/icone1.jpg"));
	  
	  //Erreurs
	  private JOptionPane erreur = new JOptionPane();;
	  
	  //Compteur
	  int compteurStartStop = 0;
	  
  
/******************** Connexion ******************************/
	  public MaVueServeur(String url){
		  this.setTitle("Serveur");
		  this.setSize(250, 250);
		  this.setIconImage(img.getImage());
		  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		  this.setLocationRelativeTo(null);
		  this.url=url;
		  initConnexion();
	
	  }
	    
	  private void initConnexion(){
			
		    all.setLayout(new GridLayout(3,1));
		    
		    //Ajout des actions sur les bouton
		    boutonDemarrer.addActionListener(new ConnexionListener());
		    boutonDemarrer.setIcon(startIcon);
		    boutonDemarrer.setPreferredSize(new Dimension(182, 57));
    
		    JPanel serveur = new JPanel();
		    serveur.add(serveurLabel);
		    
		    
		    statePanel.add(state);
		    statePanel.add(state2);
		    
		    JPanel demarrer = new JPanel();
		    demarrer.add(boutonDemarrer);
		    
		    
		    all.add(serveur, BorderLayout.NORTH);
		    all.add(statePanel, BorderLayout.CENTER);
		    all.add(demarrer, BorderLayout.SOUTH);
		    
		    this.setContentPane(all);
		    this.setVisible(true);
		    this.setResizable(false);
			 
	  }    
	  class ConnexionListener implements ActionListener {


		  HttpServeur serveurHttp;
		  ExecutorService executor = Executors.newFixedThreadPool(2);

			public void actionPerformed(ActionEvent arg0){
				if(compteurStartStop==0){
					try {
					
					serveurHttp = new HttpServeur(url);
					 executor.execute(serveurHttp);
					} catch (Exception e) {
							System.out.println("Un autre service est en cours. Fin du programme");
							System.exit(0);
					}
					boutonDemarrer.setIcon(stopIcon);
					compteurStartStop++;
					state.setText("OK : Démarré !");
					
				}
				else{
					boutonDemarrer.setIcon(startIcon);
					compteurStartStop=0;
					System.exit(0);

					state.setText("OK : Arrêté !" );
				}
			}
		}

  
  
	  
}

